﻿using Se.Data;
using Se.Model.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Se.Model.Template.Card
{
    /// <summary>
    /// 卡牌技能
    /// </summary>
    public class CardSkillTemplate : DataEntityBase
    {
        public CardSkillTemplate(CardSkillType type)
        {
            this.SkillType = type;
        }

        /// <summary>
        /// 技能类型
        /// </summary>
        public CardSkillType SkillType { get; private set; }

        /// <summary>
        /// 牌类型
        /// </summary>
        public CardType CardType { get; set; }

        /// <summary>
        /// 施放的人群类型
        /// </summary>
        public SkillEffectGroupType EffectGroup { get; set; }

        /// <summary>
        /// Count
        /// </summary>
        public int Count { get; set; }

        /// <summary>
        /// 技能触发是否有延迟
        /// </summary>
        public bool IsDelayEffect { get; set; }

        /// <summary>
        /// 使用的游戏阶段
        /// </summary>
        public PlayerGameState UseGameState { get; set; }

        /// <summary>
        /// 被释放者的起效阶段（如果不是实时的）
        /// </summary>
        public PlayerGameState EffectGameState { get; set; }

        /// <summary>
        /// 克制的技能
        /// </summary>
        [EntityField]
        public CardSkillType DisabledSkillType { get; set; }

        /// <summary>
        /// 技能施放条件
        /// </summary>
        [EntityField]
        public SkillConditionType StartCondtionType { get; set; }

        /// <summary>
        /// 产生效果条件
        /// </summary>
        [EntityField]
        public SkillConditionType EffectCondtionType { get; set; }

        [EntityField]
        public string Param1 { get; set; }

        [EntityField]
        public string Param2 { get; set; }
    }
}
